﻿using BehaviorModel.Statistic;
using Model;

namespace BehaviorModel.Block.Finish
{
    public interface IFinishCollector : IUpdatable
    {
        long CountOfPassed { get; }

        double AvgCommonServicedTime { get; }

        double AvgCommonWaitingTime { get; }

        double AvgCommonLiveTime { get; }


        long CountOfServiced { get; }

        double ServAvgCommonServicedTime { get; }

        double ServAvgCommonWaitingTime { get; }

        double ServAvgCommonLiveTime { get; }


        long CountOfRejected { get; }

        double RejAvgCommonServicedTime { get; }

        double RejAvgCommonWaitingTime { get; }

        double RejAvgCommonLiveTime { get; }

        void ReceiveServiced(Request request);

        void ReceiveRejected(Request request);
    }
}
